#ifndef NANE_TEXTURE_H
#   define  NANE_TEXTURE_H

#   include "nane/core/SubSystemProduct.h"

namespace nane
{
    class Texture
        : public SubSystemProduct
    {
        friend class RenderSystem;
        class Implementation;

    public:
        Texture( const NullType& = NullPtr );
        Texture( Implementation* _impl );
        Texture( const Texture& _other );

    public:
        byte* Lock( uint32 _x, uint32 _y, uint32 _width, uint32 _height, uint32* _pitch );
        void Unlock();

    private:
        Implementation* m;
    };
}   // namespace nane

#endif	// NANE_TEXTURE_H
